﻿using System;
using System.Web;
namespace SmartSiteManagementSystem.Appweb.Models
{
    /// <summary>
    /// 和app交互所需要的基本参数
    /// </summary>
    /// <author>zhitian.zhang</author>
    /// <concat></concat>
    [Serializable]
    /* sealed */
    public class AppBasicParameters
    {
        private int _appType;
        /// <summary>
        /// 客户端类型 1:IOS   3:ANDROID
        /// </summary>
        public int AppType
        {
            get { return _appType; }
            set { _appType = value; }
        }

        private string _appAuth = string.Empty;
        /// <summary>
        /// 用户令牌
        /// </summary>
        public string AppAuth
        {
            get { return _appAuth; }
            set { _appAuth = value; }
        }

        private string _appUserId;
        /// <summary>
        /// 用户UserId
        /// </summary>
        public string AppUserId
        {
            get { return _appUserId; }
            set { _appUserId = value; }
        }

        private string _appVersion = string.Empty;
        /// <summary>
        /// APP版本号
        /// </summary>
        public string AppVersion
        {
            get { return _appVersion; }
            set { _appVersion = value; }
        }

        //private string _mobileSN = string.Empty;
        ///// <summary>
        ///// 专题系统新增参数设备号
        ///// </summary>
        //public string MobileSN
        //{
        //    get { return _mobileSN; }
        //    set { _mobileSN = value; }
        //}

        //private string _channelCode = string.Empty;
        ///// <summary>
        ///// 专题系统新增参数 ChannelCode（安装包渠道） 安装渠道
        ///// </summary>
        //public string ChannelCode
        //{
        //    get { return _channelCode; }
        //    set { _channelCode = value; }
        //}


        /// <summary>
        /// 验证参数token是否合法。
        /// 目前通过该方法也可检测相关用户是否登录
        /// </summary>
        //public bool IsTokenValidated
        //{
        //get
        //{
        //    var user = new MUserInfoBLL().GetById(this.AppUserId);
        //    if (user != null)
        //    {
        //        string authStr = StringUtils.MD5(user.LogonName.Trim() + user.LogonPwd.Trim());
        //        if (string.Equals(this.AppAuth, authStr, StringComparison.OrdinalIgnoreCase))
        //        {
        //            return true;
        //        }
        //    }
        //    return false;
        //}
        //}        


        /// <summary>
        /// 用指定的版本号和当前版本号作比较
        /// </summary>
        /// <param name="iOSVersion">要比较的iOS版本号，会根据AppType决定是否使用该参数</param>
        /// <param name="androidVersion">要比较的Android版本号，会根据AppType决定是否使用该参数</param>
        /// <returns>-1 比较出现错误  1版本比比较的版本小  2版本一样  3 版本比比较的版本大</returns>
        //public int CompareVersion(string iOSVersion, string androidVersion)
        //{
        //    var version = AppType == 1 ? iOSVersion : androidVersion;
        //    return APPVersionHelper.checkVersion(AppVersion, version);
        //}

        /// <summary>
        /// 从IRequest中生成AppBasicParameters对象
        /// </summary>
        //public static AppBasicParameters Parse()
        //{
        //    var pType = 1;
        //    var pAuth ="";
        //    var pUserId = 0;
        //    var pVersion = "";
        //    var mobileSN = "";
        //    var channelCode = "";

        //    if (HttpContext.Current.Request["param"] != null)
        //    {
        //        var paramStr = HttpContext.Current.Request["param"] ?? "";
        //        if (!string.IsNullOrEmpty(paramStr))
        //        {

        //            //var pAuth = request["AppAuth"];
        //            //var pUserId = request["AppUserId"];
        //            //var pVersion = request["AppVersion"];
        //            //var mobileSN = request["MobileSN"];
        //            //var channelCode = request["ChannelCode"];

        //        }

        //    }
        //    return new AppBasicParameters
        //    {
        //        AppType = pType==0 ? 1 : 3,
        //        AppAuth = pAuth,
        //        AppUserId = pUserId,
        //        AppVersion = pVersion,
        //        MobileSN=mobileSN,
        //        ChannelCode=channelCode
        //    };
        //}

    }
}